/*
 Copyright (C) 2007 - Michael Opitz
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/
#ifndef _GMAIL_STATUS_ICON
#define _GMAIL_STATUS_ICON

#include <glib-object.h>
#include <gtk/gtk.h>

G_BEGIN_DECLS

#define GMAIL_TYPE_STATUS_ICON gmail_status_icon_get_type()

#define GMAIL_STATUS_ICON(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
  GMAIL_TYPE_STATUS_ICON, GmailStatusIcon))

#define GMAIL_STATUS_ICON_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_CAST ((klass), \
  GMAIL_TYPE_STATUS_ICON, GmailStatusIconClass))

#define GMAIL_IS_STATUS_ICON(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
  GMAIL_TYPE_STATUS_ICON))

#define GMAIL_IS_STATUS_ICON_CLASS(klass) \
  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
  GMAIL_TYPE_STATUS_ICON))

#define GMAIL_STATUS_ICON_GET_CLASS(obj) \
  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
  GMAIL_TYPE_STATUS_ICON, GmailStatusIconClass))

typedef struct _GmailStatusIcon 	GmailStatusIcon;
typedef struct _GmailStatusIconClass 	GmailStatusIconClass;
typedef struct _GmailStatusIconPrivate 	GmailStatusIconPrivate;

/** 
 * This structure represents the status icon for the gmail-manager.
 */
struct _GmailStatusIcon {
	GObject parent;
	GmailStatusIconPrivate *priv;
};

struct _GmailStatusIconClass {
	GObjectClass parent_class;

	/* signals */
	/* This signal is emitted if the Browser should open a gmail-ui dialog
	 * to configure the accounts
	 */
	void (*open_ui) (GmailStatusIcon *icon, gpointer user_data);
};

/*
 * The usual GObject functions...
 */
GType 
gmail_status_icon_get_type ();
GType
gmail_status_icon_register_type (GTypeModule *module);

static GmailStatusIcon* 
gmail_status_icon_new ();

G_END_DECLS

#endif 
